package ar.uade.distribuidas.tpo.dba.dao;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import ar.uade.distribuidas.tpo.dba.dominio.ItemListaRodamiento;
import ar.uade.distribuidas.tpo.dba.dominio.OrdenDeCompra;
public class OrdenDeCompraXmlDAO {
	private static final String XML_ORDENES_COMPRA_DIR ="c:/distribuidas/compras/";
public static void saveOrdenCompraToXml(OrdenDeCompra compra) {
		
		String xmlOrdenCompra="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
		xmlOrdenCompra += "<OrdenCompra numero="+compra.getNumero()+">"
		+"<Emision>"+compra.getFecha()+"</Emision>"			
		+"<Cliente>"
		+"<Cuil>"+compra.getProveedor().getCuil()+"</Cuil>"
		+"<RazonSocial>"+compra.getProveedor().getNombre()+"</RazonSocial>"
		+"</Cliente>"
		+"<Rodamientos>";
		for(ItemListaRodamiento ilr : compra.getItem()){
			xmlOrdenCompra +="<Item serie="+ilr.getRodamiento().getNroSerie()+">"
					+"<Sufijo>"+ilr.getRodamiento().getSufijo()+"</Sufijo>"
					+"<Marca>"+ilr.getRodamiento().getMarca()+"</Marca>"
					+"<Origen>"+ilr.getRodamiento().getPais()+"</Origen>"
					+"<Cantidad>"+ilr.getCantidad()+"</Cantidad>"
					+"</Item>";

		
		}

		xmlOrdenCompra +="</Rodamientos></OrdenCompra>";
	
		System.out.println(xmlOrdenCompra);
		try {
	        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	        DocumentBuilder builder = factory.newDocumentBuilder();
	        Document f = builder.parse(new InputSource(new StringReader(xmlOrdenCompra)));
	        
	        Transformer transformer;
			try {
				
				transformer = TransformerFactory.newInstance().newTransformer();
		        Result output = new StreamResult(new File(XML_ORDENES_COMPRA_DIR+"Cotizacion_"+compra.getNumero()+".xml"));
		        Source input = new DOMSource(f);
		
		        transformer.transform(input, output);
			} catch (Exception e) {
				
				e.printStackTrace();
			}
			} catch (SAXException e) {
				
				e.printStackTrace();
			} catch (IOException e) {
			
				e.printStackTrace();
			} catch (ParserConfigurationException e) {
				
				e.printStackTrace();
			} catch (Exception e) {
				
				e.printStackTrace();
			}
			
	
	
	}		
}
